/*
 * Estadistica.h
 *
 *  Created on: 01/06/2013
 *      Author: npersia
 */

#ifndef ESTADISTICA_H_
#define ESTADISTICA_H_
#include "../../Aplicacion/BiblioDeCanciones.h"
#include "DatoContable.h"
#include "StringContable.h"
#include "UnsignedIntContable.h"
#include <list>
#include <iostream>

using namespace std;

class Estadistica {

private:
	list<DatoContable*> * titulosBuscados;
	list<DatoContable*> * autoresBuscados;
	list<DatoContable*> * frasesBuscadas;
	unsigned short int menor(unsigned short int a, unsigned short int b, unsigned short int c);


public:
	Estadistica();

	void agregarTitulo(string unTitulo);
	void agregarAutor(string unAutor);
	void agregarfrase(string unaFrase);
	list<DatoContable*>* getTitulos();
	list<DatoContable*>* getAutores();
	list<DatoContable*>* getFrases();
	void agregarDato(list<DatoContable*>* unaLista, string nuevoDato);
	list<DatoContable*>* getMayores(list<DatoContable*>* unaLista);
	list<DatoContable*>* agregarContador(list<unsigned int>* listaA, unsigned short int unContador);
	void eliminarLista(list<DatoContable*>* listaAEliminar);
	list<DatoContable*>* disyuncion(list<DatoContable*>* listaA,	list<DatoContable*>* listaB);
	void conjuncion(list<DatoContable*> * unaLista, list<DatoContable*> * unaListaAAcolar);
	void unicidad(list<DatoContable*> * unaLista);
	void mostrarLista(list<DatoContable*> * unaLista);
	void mostrarTitulosMasBuscados();
	void mostrarAutoresMasBuscados();
	void mostrarFrasesMasBuscadas();
	void mostrarTemasMasCoincidentes(BiblioDeCanciones * unaBiblioteca);
	void ejecutarMenuEstadisticas(BiblioDeCanciones * unaBiblioteca);
	void imprimirMenuEstadisticas();
	void mostrarTodasLasEstadisticas(BiblioDeCanciones * unaBiblioteca);

	virtual ~Estadistica();
};

#endif /* ESTADISTICA_H_ */
